<?php
defined('BASEPATH') OR exit('No direct script access allowed');

/**
 * 商户控制器
 *
 * @desc    商户控制器
 *
 * @desc    完善文档注释
 * @version 1.1.0
 * @date	2017年6月27日 下午5:35:08
 *
 * @title 商户个人信息编辑
 * @entry http://discovery.segway.com
 */
class Merchant extends MY_Business_Controller
{
	/** @var Lib_merchant */
	public $lib_merchant = null;
	
	public function __construct()
	{
		parent::__construct();
		
		$this->load->library('lib_merchant');
		
		$this->set_mutable_view_var('head.title', 'Merchant - Business Management');
		$this->set_mutable_view_var('head.keywords', '');
		$this->set_mutable_view_var('head.description', '');
		
		$this->lang->load('merchant');
		
		// 供资源所有权验证用
		$this->member_id = @$this->get_logined_member()['id'];
		$this->merchant_id = @$this->get_logined_member()['MY_MERCHANT']['id'];
	}
	
	/**
	 * 首页 -> 详情页 or 索引页
	 *
	 * @return html
	 *
	 * @command pass noneurl
	 */
	public function index()
	{
		$this->detail();
	}
	
	/**
	 * 我的商户详情 - 编辑前信息载入
	 * 
	 * @desc    编辑前信息载入
	 * @method  GET
	 * @author  Jason
	 * @date	2017年5月31日 下午2:59:03
	 * 
	 * @param   string $language 默认为 ""，从 COOKIE 中取，取不到则默认为 <default>"english"
	 * 			把参数按顺序辍到 URL 之后，用 "/" 间隔
	 * @example 如果参数为 language=chinese
	 * 			那么URL为 /business/merchant/detail/chinese
	 * 
	 * @link    /business/merchant/detail
	 * 
	 * @demoParam id 106
	 * @demoParam language chinese
	 */
	public function detail($language = '')
	{
		$id = $this->merchant_id;
		$cookie_lang = $this->lib_cookie->get_language();
		$language = $this->lib_language->get_supported_language($language, $cookie_lang);
		
		$merchant = $this->lib_merchant->get_merchant_for_detail($id, $language);
		if (empty($merchant)) {
			show_404();
			return false;
		}
		
		$this->load->library('lib_section');
		$data['content']['search'] = $this->lib_section->index_search();
		$data['content']['merchant'] = $merchant;
		
		$this->load->view('business/merchant/detail', $data);
	}
	
	/**
	 * 商户语言详情 - 编辑语言前信息载入
	 *
	 * @desc    编辑语言前信息载入
	 * @method  GET
	 * @author  Jason
	 * @date	2017年5月31日 下午3:01:06
	 *
	 * @param   string $language 默认为 ""，从 COOKIE 中取，取不到则默认为 <default>"english"
	 * 			把参数按顺序辍到 URL 之后，用 "/" 间隔
	 * @example 如果参数为 language=chinese
	 * 			那么URL为 /business/merchant/detail_language/chinese
	 * 
	 * @link    /business/merchant/detail_language
	 * 
	 * @demoParam language chinese
	 */
	public function detail_language($language = '')
	{
		$id = $this->merchant_id;
		$cookie_lang = $this->lib_cookie->get_language();
		$language = $this->lib_language->get_supported_language($language, $cookie_lang);
		
		// 获取语言
		$resource = $id;
		$module = [$this->mod_merchant, 'master'];
		
		$data = $this->lib_language->select_language($resource, $module, $language);
		$data['content']['id'] = $id;
		$data['content']['language'] = $language;
		$data['content']['values'] = $data['values'];
		
		$this->load->view('business/merchant/detail_language', $data);
	}
	
	/**
	 * 商户详情编辑提交 - 编辑完后的信息提交
	 * 
	 * @desc    编辑完后的信息提交(固定商户ID)
	 * @method  POST
	 * @author  Jason
	 * @date	2017年6月1日 下午1:34:20
	 * 
	 * @param   string $language 语言标识，必填项！
	 * ...
	 * 
	 * @return  JSON	标准JSON格式响应
	 * 					结构：无
	 * 
	 * @link    /business/merchant/ajax_update
	 * 
	 * @command noneurl
	 */
	public function ajax_update()
	{
		$_POST['id'] = $this->merchant_id;
		$_POST['owner_id'] = $this->member_id;
		list($status, $content) = $this->lib_merchant->update();
		
		if(!$status) {
			$messageContent = Lib_json::getMessageContent($content);
			Lib_json::renderError(Lib_json::ERROR_BUSINESS, current($content), $messageContent);
		} else {
			Lib_json::renderSuccess(['data' => $content], 'success');
		}
	}
	
	/**
	 * 商户多语言信息编辑提交
	 *
	 * @desc    编辑完后的信息提交
	 * @method  POST
	 * @author  Jason
	 * @date	2017年6月1日 下午1:37:25
	 * 
	 * @param   string $language 语言标识，必填项！
	 * ...
	 *
	 * @return  JSON	标准JSON格式响应
	 * 					结构：无
	 *
	 * @link    /business/merchant/ajax_update_language
	 * 
	 * @command noneurl
	 */
	public function ajax_update_language()
	{
		$_POST['resource'] = $this->merchant_id;
		list($status, $content) = $this->lib_merchant->create_language();
		
		if(!$status) {
			$messageContent = Lib_json::getMessageContent($content);
			Lib_json::renderError(Lib_json::ERROR_BUSINESS, current($content), $messageContent);
		} else {
			Lib_json::renderSuccess(['data' => $content], 'success');
		}
	}
}
